home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
User's Choice Windows CD
/
User's Choice Windows CD (CMS Software)(1993).iso
/
utility3
/
what.zip
/
WHPEWHAT.MS_
/
WHPEWHAT.bin
Wrap
Text File
|
1992-08-06
|
13KB
|
413 lines
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''
'' Constants:
''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Dialog IDs
CONST CHECK = 100
CONST HELPCHK = 150
CONST GETPATH1 = 200
CONST HELPGP1 = 250
CONST GETPATH2 = 300
CONST HELPGP2 = 350
CONST EXITSUCCESS = 400
CONST EXITQUIT = 500
CONST EXITFAILURE = 600
CONST EXITRESTART = 700
CONST EXITRUNBATCH = 800
''Bitmap ID
CONST LOGO = 1
'' MessageBox constants
CONST MB_ABORTRETRYIGNORE = 2
CONST MB_YESNO = 4
CONST MB_RETRYCANCEL = 5
CONST MB_ICONQUESTION = 32
CONST MB_ICONEXCLAMATION = 48
CONST IDRETRY = 4
CONST IDCANCEL = 2
CONST IDIGNORE = 5
CONST IDYES = 6
CONST IDNO = 7
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION SzDiskError (cbNeeded, szDrive$) AS STRING
DECLARE SUB SetConfigNumFiles (cfiles%)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''
'' START MAIN
''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SetTitle "Help Author Setup"
SetBitmap "mscuistf.dll", LOGO
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "WHPEWHAT.INF"
ENDIF
ReadInfFile szInf$
szInf$ = ""
'Find Windows version
IF GetWindowsMajorVersion() > 3 OR GetWindowsMinorVersion() > 9 THEN
f30% = 0
ELSE
f30% = 1
END IF
SetSymbolValue "CheckItemsIn", "{}"
AddListItem "CheckItemsIn", "ON" '' WHPE default always on
AddListItem "CheckItemsIn", "ON" '' WHAT default
AddListItem "CheckItemsIn", "ON" '' SHED/MRBC
AddListItem "CheckItemsIn", "ON" '' Sample Files
szWHATDir$ = FindTargetOnEnvVar("winword.exe", "path")
IF szWWDir$ <> "" THEN
SplitPath szWHATDir$, szDrive$, szDir$, szFile$, szExt$
szWHATDir$ = szDrive$ + MID$(szDir$, 1, LEN(szDir$) - 1)
szDrive$ = ""
szDir$ = ""
szFile$ = ""
szExt$ = ""
ELSE
szWHATDir$ = "C:\WINWORD"
END IF
SetSymbolValue "OptionsGreyed", "{}"
GETOPTIONS:
sz$ = UIStartDlg("mscuistf.dll", CHECK, "FCheckDlgProc", HELPCHK, "FHelpDlgProc")
IF sz$ = "EXIT" THEN
UIPop 1
ERROR STFQUIT
ENDIF
szWHPE$ = GetListItem("CheckItemsOut", 1)
szWHAT$ = GetListItem("CheckItemsOut", 2)
szSHED$ = GetListItem("CheckItemsOut", 3)
szSAMPLE$ = GetListItem("CheckItemsOut", 4)
IF szWHPE$ = "OFF" AND szWHAT$ = "OFF" AND szSHED$ = "OFF" AND szSAMPLE$ = "OFF" THEN
iMB% = DoMsgBox("You really should pick at least one option!", "Setup Error", MB_RETRYCANCEL + MB_ICONEXCLAMATION)
IF iMB% = IDRETRY THEN
GOTO GETOPTIONS
END IF
UIPop 1
ERROR STFQUIT
END IF
UIPop 1
SetSymbolValue "EditFocus", "ALL"
IF szWHPE$ = "ON" OR szSHED$ = "ON" OR szSAMPLE$ = "ON" THEN
SetSymbolValue "EditTextIn", "C:\HELPAUTH"
GETWHPEDIR:
sz$ = UIStartDlg("mscuistf.dll", GETPATH1, "FEditDlgProc", HELPGP1, "FHelpDlgProc")
szWHPEDir$ = GetSymbolValue("EditTextOut")
IF sz$ = "EXIT" THEN
UIPop 1
ERROR STFQUIT
ELSEIF sz$ <> "CONTINUE" THEN
GOTO GETWHPEDIR
ENDIF
IF IsDirWritable(szWHPEDir$) = 0 THEN
iMB% = DoMsgBox( "The path you entered is not a valid pathname.", "Setup Error", MB_RETRYCANCEL + MB_ICONEXCLAMATION )
IF iMB% = IDRETRY THEN
GOTO GETWHPEDIR
ELSE
UIPop 1
ERROR STFQUIT
END IF
END IF
UIPop 1
END IF
IF szWHAT$ = "ON" THEN
SetSymbolValue "EditTextIn", szWHATDir$
GETWHATDIR:
sz$ = UIStartDlg("mscuistf.dll", GETPATH2, "FEditDlgProc", HELPGP2, "FHelpDlgProc")
IF sz$ = "EXIT" THEN
UIPop 1
ERROR STFQUIT
ELSEIF sz$ <> "CONTINUE" THEN
GOTO GETWHATDIR
ENDIF
szWHATDir$ = GetSymbolValue("EditTextOut")
szWWFile$ = MakePath(szWHATDir$, "winword.exe")
IF DoesFileExist(szWWFile$, femExists) = 0 THEN
iMB% = DoMsgBox("The given directory does not have Word for Windows installed in it.", "Setup Error", MB_RETRYCANCEL + MB_ICONEXCLAMATION)
IF iMB% = IDRETRY THEN
GOTO GETWHATDIR
ELSE
UIPop 1
ERROR STFQUIT
END IF
END IF
' Determine version of WinWord. Quick and dirty test: compare size
' to 1 MB.
verWW% = 1
IF GetSizeOfFile(szWWFile$) >= 1000000 THEN
verWW% = 2
END IF
' Check for alternate location for .dot files
szDotPath$ = String$(255, 0)
szSection$ = "Microsoft Word"
IF verWW% = 2 THEN
szSection$ = szSection$ + " 2.0"
END IF
t% = GetProfileString(szSection$, "DOT-path", "", szDotPath$, 255)
IF szDotPath$ = "" THEN
szDotPath$ = szWHATDir$
END IF
szSection$ = ""
IF IsDirWritable(szDotPath$) = 0 THEN
iMB% = DoMsgBox( "The path you entered is not a valid pathname.", "Setup Error", MB_RETRYCANCEL + MB_ICONEXCLAMATION )
IF iMB% = IDRETRY THEN
GOTO GETWHPEDIR
ELSE
UIPop 1
ERROR STFQUIT
END IF
END IF
IF IsDirWritable(szWHATDir$) = 0 THEN
szWHATDir$ = GetWindowsDir
END IF
UIPop 1
END IF
INSTALL:
szSrcDir$ = GetSymbolValue("STF_SRCDIR")
szWinDir$ = GetWindowsDir
IF szWHPE$ = "ON" THEN
AddSectionFilesToCopyList "whpe files", szSrcDir$, szWHPEDir$
AddSectionFilesToCopyList "dlls", szSrcDir$, szWinDir$
AddSectionFilesToCopyList "system", szSrcDir$, szWinDir$ + "system\"
IF f30% THEN
AddSectionFilesToCopyList "3.0 dlls", szSrcDir$, szWinDir$ + "system\"
ELSE
AddSectionFilesToCopyList "3.1 dlls", szSrcDir$, szWinDir$ + "system\"
END IF
END IF
IF szWHPE$ = "ON" OR szWHAT$ = "ON" THEN
AddSectionFilesToCopyList "hc files", szSrcDir$, szWinDir$
IF f30% THEN
AddSectionFilesToCopyList "3.0 hc files", szSrcDir$, szWinDir$
ELSE
AddSectionFilesToCopyList "3.1 hc files", szSrcDir$, szWinDir$
END IF
END IF
IF szWHAT$ = "ON" THEN
IF verWW% = 1 THEN
AddSectionFilesToCopyList "what files 1.x", szSrcDir$, szDotPath$
AddSectionFilesToCopyList "what help 1.x", szSrcDir$, szWHATDir$
ELSE
AddSectionFilesToCopyList "what files 2.0", szSrcDir$, szDotPath$
AddSectionFilesToCopyList "what help 2.0", szSrcDir$, szWHATDir$
END IF
END IF
IF szSHED$ = "ON" THEN
AddSectionFilesToCopyList "graphic tools", szSrcDir$, szWHPEDir$
AddSectionFilesToCopyList "shed help", szSrcDir$, szWinDir$
END IF
IF szSAMPLE$ = "ON" THEN
AddSectionFilesToCopyList "helpex", szSrcDir$, MakePath(szWHPEDir$,"helpex")
AddSectionFilesToCopyList "dlldemo", szSrcDir$, MakePath(szWHPEDir$,"dlldemo")
AddSectionFilesToCopyList "sample", szSrcDir$, MakePath(szWHPEDir$,"sample")
END IF
' Remove bad files from a possible previous install
AddSectionFilesToCopyList "remove", szSrcDir$, szWinDir$
' Check for disk space, and do not proceed until there is enough.
WHILE GetCopyListCost("", "costs", "needed") > 0
iDrive = 1
szNeeded$ = GetListItem("costs", iDrive)
WHILE Val(szNeeded$) <= 0
iDrive = iDrive + 1
szNeeded$ = GetListItem("costs", iDrive)
WEND
iMB% = DoMsgBox(SzDiskError(Val(szNeeded$), Chr$(Asc("A") + iDrive - 1)), "Setup Error", MB_RETRYCANCEL + MB_ICONEXCLAMATION )
IF iMB% = IDCANCEL THEN
ERROR STFQUIT
END IF
WEND
' Copy all files
SetRestartDir GetWindowsDir
t% = SetSizeCheckMode( scmOff )
CopyFilesInCopyList
' Advise that FILES= should be at least 50
IF szWHAT$ = "ON" OR szWHPE$ = "ON" THEN
'IF GetWindowsMajorVersion() > 3 OR GetWindowsMinorVersion() > 9 THEN
IF GetConfigNumFiles() < 50 THEN
szMessage1$ = "For best results, we recommend that the number of open files allowed by CONFIG.SYS be at least 50. "
szMessage2$ = "Would you like for us to change this for you?"
iMB% = DoMsgBox(szMessage1$ + szMessage2$, "Help Author Setup" , MB_YESNO + MB_ICONQUESTION )
szMessage1$ = ""
szMessage2$ = ""
IF iMB% = IDYES THEN
ON ERROR GOTO RESUMENEXT
SetConfigNumFiles(50)
ON ERROR GOTO 0
' Should we tell them to reboot?
END IF
END IF
'END IF
END IF
' Create Progman group and icons
IF szWHPE$ = "ON" OR szSHED$ = "ON" THEN
CreateProgmanGroup "Help Author", "", 0
ShowProgmanGroup "Help Author", 1, 0
IF szWHPE$ = "ON" THEN
CreateProgmanItem "Help Author", "Help Project Editor", MakePath(szWHPEDir$, "whpe.exe"), "", 0
CreateProgmanItem "Help Author", "Getting Started", "notepad.exe " + MakePath(szWHPEDir$, "getstart.txt"), "", 0
END IF
IF szSHED$ = "ON" THEN
CreateProgmanItem "Help Author", "Hotspot Editor", MakePath(szWHPEDir$, "shed.exe"), "", 0
END IF
IF szWHAT$ = "ON" AND verWW% = 1 THEN
CreateProgmanItem "Help Author", "Help on WHAT", "winhelp.exe " + MakePath(szWHATDir$, "what.hlp"), "", 0
END IF
END IF
IF szWHAT$ = "ON" THEN
RemoveIniKey "WIN.INI", "Extensions", "rtf", 0
CreateIniKeyValue "WIN.INI", "Extensions", "rtf", szWWFile$ + " ^.rtf", 0
END IF
IF RestartListEmpty() = 0 THEN
IF GetWindowsMajorVersion() > 3 OR GetWindowsMinorVersion() > 9 THEN
' Setup successful, but Windows must be restarted
sz$ = UIStartDlg("mscuistf.dll", EXITRESTART, "FInfo0DlgProc", 0,"")
UIPopAll
i% = ExitExecRestart()
ELSE
' User must run c:\_mssetup.bat to complete setup
sz$ = UIStartDlg("mscuistf.dll", EXITRUNBATCH,"FInfo0DlgProc", 0,"")
UIPopAll
END IF
END
END IF
QUIT:
IF Err = 0 THEN
Dlg% = EXITSUCCESS
ELSEIF Err = STFQUIT THEN
Dlg% = EXITQUIT
ELSE
Dlg% = EXITFAILURE
ENDIF
sz$ = UIStartDlg("mscuistf.dll", Dlg%, "FInfo0DlgProc", 0, "")
UIPopAll
END
RESUMENEXT:
RESUME NEXT
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = szDir$ + szFile$
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION
FUNCTION SzDiskError (cbNeeded, szDrive$) STATIC AS STRING
szT$ = "You do not have enough disk space to install the selected items. You need "
cbNeeded = (cbNeeded + 999)/1000
szT$ = szT$ + Str$(cbNeeded) + "K more space on your " + szDrive$ + ": drive."
SzDiskError = szT$
szT$ = ""
END FUNCTION
SUB SetConfigNumFiles (cfiles%) STATIC
OPEN "C:\CONFIG.SYS" FOR INPUT AS #1
OPEN "C:\HELPAUTH.~TM" FOR OUTPUT AS #2
WHILE EOF(1) <> -1
INPUT #1, szInput$
szInput$ = LTRIM$(szInput$)
IF MID$(UCASE$(szInput$), 1, 5) = "FILES" THEN
PRINT #2, "FILES = "; cfiles%
ELSE
PRINT #2, szInput$
ENDIF
WEND
CLOSE #1
CLOSE #2
OPEN "C:\HELPAUTH.~TM" FOR INPUT AS #1
OPEN "C:\CONFIG.SYS" FOR OUTPUT AS #2
WHILE EOF(1) <> -1
INPUT #1, szInput$
PRINT #2, szInput$
WEND
CLOSE #1
CLOSE #2
KILL "C:\HELPAUTH.~TM"
END SUB